import { createSlice } from'@reduxjs/toolkit';

const counterStore = createSlice({
  name: 'counter',
  // `createSlice` 将从 `initialState` 参数推断出 state 类型
  initialState: {
    count: 0
  },
  // 修改状态的方法,同步方法 支持直接修改
  reducers: {
    increment: (state) => {
      state.count += 1
    },
    decrement: (state) => {
      state.count -= 1
    },
    // 传递参数
    incrementByNum: (state, action) => {
      state.count += action.payload
    }
  }
})

// 解构出来actionCreater函数,, 生成的是同名的action对象, 给 页面 使用 例如: App.js中使用
const { increment, decrement, incrementByNum } = counterStore.actions

// 获取reducer
const reducer = counterStore.reducer

// 提供前端APP.js中提供调用,,,, 以按需导出的方式导出actionCreater, 生成的是同名的action对象    
export { increment, decrement, incrementByNum }

// 以默认导出的方式导出reducer
export default reducer
